package top.lyjwn.todo.weinxin.data.error;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 错误码
 *
 * @author luoyujie
 *
 */
public class Errcode {

	private static Map<String, WxError> errcodes = new ConcurrentHashMap<String, WxError>();

	/**
	 * 得到微信错误码，未加载之前， 任何值为null
	 * 
	 * @param code
	 * @return
	 */
	public static WxError getErrcode(String code) {
		return errcodes.get(code);
	}

	/**
	 * 加载微信错误码
	 */
	public static void loadErrcode() {
		// 微信公众号基础错误码
		errcodes.put("-1", new WxError("-1", "系统繁忙，此时请开发者稍候再试"));
		errcodes.put("0", new WxError("0", "请求成功"));
		errcodes.put("40001", new WxError("40001", "AppSecret错误或者AppSecret不属于这个公众号，请开发者确认AppSecret的正确性"));
		errcodes.put("40002", new WxError("40002", "请确保grant_type字段值为client_credential"));
		errcodes.put("40164", new WxError("40164", "调用接口的IP地址不在白名单中，请在接口IP白名单中进行设置。（小程序及小游戏调用不要求IP地址在白名单内。"));
		errcodes.put("40029", new WxError("40029", "code 无效"));
		errcodes.put("45011", new WxError("45011", "频率限制，每个用户每分钟100次"));
		errcodes.put("40029", new WxError("45072", "command字段取值不对"));
		errcodes.put("40029", new WxError("45080", "下发输入状态，需要之前30秒内跟用户有过消息交互"));
		errcodes.put("40029", new WxError("45081", "已经在输入状态，不可重复下发"));
		errcodes.put("40029", new WxError("10003", "redirect_uri域名与后台配置不一致"));
		//
		errcodes.put("10004", new WxError("10004", "此公众号被封禁"));
		errcodes.put("10005", new WxError("10005", "此公众号并没有这些scope的权限"));
		errcodes.put("10006", new WxError("10006", "必须关注此测试号"));
		errcodes.put("10009", new WxError("10009", "操作太频繁了，请稍后重试"));
		errcodes.put("10010", new WxError("10010", "scope不能为空"));
		errcodes.put("10011", new WxError("10011", "redirect_uri不能为空"));
		errcodes.put("10012", new WxError("10012", "appid不能为空"));
		errcodes.put("10013", new WxError("10013", "scope不能为空"));
		//
		errcodes.put("10015", new WxError("10015", "公众号未授权第三方平台，请检查授权状态"));
		errcodes.put("10016", new WxError("10016", "不支持微信开放平台的Appid，请使用公众号Appid"));
		errcodes.put("40029", new WxError("40029", "无效 code"));
		errcodes.put("40003", new WxError("40003", "无效 openid"));

	}

}
